package suanfa;

public class happynumber {
    //对于一个正整数，每一次将该数替换为它每个位置上的数字的平方和。
    //然后重复这个过程直到这个数变为 1，也可能是 无限循环 但始终变不到 1。
    //如果这个过程 结果为 1，那么这个数就是快乐数。
    //如果 n 是 快乐数 就返回 true ；不是，则返回 false 。
    public int bitSum(int n){
        int sum=0;
        while(n!=0){
            int t=n%10;
            sum+=t*t;
            n=n/10;
        }
        return sum;
    }
    public boolean isHappy(int n) {
        int slow=n, fast=bitSum(n);
        while(slow!=fast){
            slow=bitSum(slow);
            fast=bitSum(bitSum(fast));
        }
        return slow==1;
    }
}
